package bufferings.lab.slim3.speed.gtx;

import org.junit.Test;
import org.slim3.datastore.Datastore;
import org.slim3.datastore.GlobalTransaction;
import org.slim3.tester.AppEngineTestCase;

import com.google.appengine.api.datastore.Entity;

public class GtxSpeed1 extends AppEngineTestCase {
  @Test
  public void gtx001_1EGを10回コミット() {
    runGtx(10, 1);
  }

  @Test
  public void gtx002_2EGを10回コミット() {
    runGtx(10, 2);
  }

  @Test
  public void gtx003_3EGを10回コミット() {
    runGtx(10, 3);
  }

  @Test
  public void gtx004_4EGを10回コミット() {
    runGtx(10, 4);
  }

  @Test
  public void gtx005_5EGを10回コミット() {
    runGtx(10, 5);
  }

  private void runGtx(int numberOfTimes, int entityGroupCount) {
    for (int i = 0; i < numberOfTimes; i++) {
      GlobalTransaction gtx = Datastore.beginGlobalTransaction();
      for (int j = 0; j < entityGroupCount; j++) {
        gtx.put(new Entity("Hoge"));
      }
      gtx.commit();
    }
  }
}
